use super::hitls_type::{HITLS_Config, HITLS_Ctx};
pub const HITLS_DEFAULT_SECURITY_LEVEL: u32 = 1;
pub const HITLS_SECURITY_LEVEL_ZERO: u32 = 0;
pub const HITLS_SECURITY_LEVEL_ONE: u32 = 1;
pub const HITLS_SECURITY_LEVEL_TWO: u32 = 2;
pub const HITLS_SECURITY_LEVEL_THREE: u32 = 3;
pub const HITLS_SECURITY_LEVEL_FOUR: u32 = 4;
pub const HITLS_SECURITY_LEVEL_FIVE: u32 = 5;
pub const HITLS_SECURITY_LEVEL_MIN: u32 = 0;
pub const HITLS_SECURITY_LEVEL_MAX: u32 = 5;
pub const HITLS_SECURITY_LEVEL_ONE_SECBITS: u32 = 80;
pub const HITLS_SECURITY_LEVEL_TWO_SECBITS: u32 = 112;
pub const HITLS_SECURITY_LEVEL_THREE_SECBITS: u32 = 128;
pub const HITLS_SECURITY_LEVEL_FOUR_SECBITS: u32 = 192;
pub const HITLS_SECURITY_LEVEL_FIVE_SECBITS: u32 = 256;
pub const HITLS_SECURITY_SECOP_OTHER_TYPE: u32 = 4294901760;
pub const HITLS_SECURITY_SECOP_OTHER_NONE: u32 = 0;
pub const HITLS_SECURITY_SECOP_OTHER_CIPHER: u32 = 65536;
pub const HITLS_SECURITY_SECOP_OTHER_CURVE: u32 = 131072;
pub const HITLS_SECURITY_SECOP_OTHER_DH: u32 = 196608;
pub const HITLS_SECURITY_SECOP_OTHER_PKEY: u32 = 262144;
pub const HITLS_SECURITY_SECOP_OTHER_SIGALG: u32 = 327680;
pub const HITLS_SECURITY_SECOP_OTHER_CERT: u32 = 393216;
pub const HITLS_SECURITY_SECOP_PEER: u32 = 4096;
pub const HITLS_SECURITY_SECOP_CIPHER_SUPPORTED: u32 = 65537;
pub const HITLS_SECURITY_SECOP_CIPHER_SHARED: u32 = 65538;
pub const HITLS_SECURITY_SECOP_CIPHER_CHECK: u32 = 65539;
pub const HITLS_SECURITY_SECOP_CURVE_SUPPORTED: u32 = 131076;
pub const HITLS_SECURITY_SECOP_CURVE_SHARED: u32 = 131077;
pub const HITLS_SECURITY_SECOP_CURVE_CHECK: u32 = 131078;
pub const HITLS_SECURITY_SECOP_TMP_DH: u32 = 262151;
pub const HITLS_SECURITY_SECOP_VERSION: u32 = 9;
pub const HITLS_SECURITY_SECOP_TICKET: u32 = 10;
pub const HITLS_SECURITY_SECOP_SIGALG_SUPPORTED: u32 = 327691;
pub const HITLS_SECURITY_SECOP_SIGALG_SHARED: u32 = 327692;
pub const HITLS_SECURITY_SECOP_SIGALG_CHECK: u32 = 327693;
pub const HITLS_SECURITY_SECOP_SIGALG_MASK: u32 = 327694;
pub const HITLS_SECURITY_SECOP_COMPRESSION: u32 = 15;
pub const HITLS_SECURITY_SECOP_EE_KEY: u32 = 393232;
pub const HITLS_SECURITY_SECOP_CA_KEY: u32 = 393233;
pub const HITLS_SECURITY_SECOP_CA_MD: u32 = 393234;
pub const HITLS_SECURITY_SECOP_PEER_EE_KEY: u32 = 397328;
pub const HITLS_SECURITY_SECOP_PEER_CA_KEY: u32 = 397329;
pub const HITLS_SECURITY_SECOP_PEER_CA_MD: u32 = 397330;
pub type HITLS_SecurityCb = ::std::option::Option<
    unsafe extern "C" fn(
        ctx: *const HITLS_Ctx,
        config: *const HITLS_Config,
        option: i32,
        bits: i32,
        id: i32,
        other: *mut ::std::os::raw::c_void,
        exData: *mut ::std::os::raw::c_void,
    ) -> i32,
>;
unsafe extern "C" {
    pub fn HITLS_CFG_SetSecurityLevel(config: *mut HITLS_Config, securityLevel: i32) -> i32;
}
unsafe extern "C" {
    pub fn HITLS_CFG_GetSecurityLevel(config: *const HITLS_Config, securityLevel: *mut i32) -> i32;
}
unsafe extern "C" {
    pub fn HITLS_CFG_SetSecurityCb(config: *mut HITLS_Config, securityCb: HITLS_SecurityCb) -> i32;
}
unsafe extern "C" {
    pub fn HITLS_CFG_GetSecurityCb(config: *const HITLS_Config) -> HITLS_SecurityCb;
}
unsafe extern "C" {
    pub fn HITLS_CFG_SetSecurityExData(
        config: *mut HITLS_Config,
        securityExData: *mut ::std::os::raw::c_void,
    ) -> i32;
}
unsafe extern "C" {
    pub fn HITLS_CFG_GetSecurityExData(config: *const HITLS_Config) -> *mut ::std::os::raw::c_void;
}
unsafe extern "C" {
    pub fn HITLS_SetSecurityLevel(ctx: *mut HITLS_Ctx, securityLevel: i32) -> i32;
}
unsafe extern "C" {
    pub fn HITLS_GetSecurityLevel(ctx: *const HITLS_Ctx, securityLevel: *mut i32) -> i32;
}
unsafe extern "C" {
    pub fn HITLS_SetSecurityCb(ctx: *mut HITLS_Ctx, securityCb: HITLS_SecurityCb) -> i32;
}
unsafe extern "C" {
    pub fn HITLS_GetSecurityCb(ctx: *const HITLS_Ctx) -> HITLS_SecurityCb;
}
unsafe extern "C" {
    pub fn HITLS_SetSecurityExData(
        ctx: *mut HITLS_Ctx,
        securityExData: *mut ::std::os::raw::c_void,
    ) -> i32;
}
unsafe extern "C" {
    pub fn HITLS_GetSecurityExData(ctx: *const HITLS_Ctx) -> *mut ::std::os::raw::c_void;
}
